/**
 * @file MouseSimulator.h
 * @details 鼠标事件模拟器。
 * @copyright 北京经海科技有限公司
 * @author 李渊 <18069211@qq.com>
 * @version 1.0
 * @date 2017.02.05
 */

/// win32: LIBS += -lUser32

#ifndef MOUSESIMULATOR_H
#define MOUSESIMULATOR_H

#include <QObject>
#include <QPoint>
#include <QMouseEvent>

/**
 * @brief MouseMove 将鼠标挪动到某个位置
 * @param x
 * @param y
 */
void MouseMove(int x, int y);

/**
 * @brief MouseLeftDown 模拟鼠标左键按下
 */
void MouseLeftDown();

/**
 * @brief MouseLeftUp 模拟鼠标左键抬起
 */
void MouseLeftUp();

/**
 * @brief MouseRightDown 模拟鼠标右键按下
 */
void MouseRightDown();

/**
 * @brief MouseRightUp 模拟鼠标右键抬起
 */
void MouseRightUp();

/**
 * @brief MouseClick 模拟鼠标单击事件
 */
void MouseClick();

/**
 * @brief MouseDoubleClick 模拟鼠标双击事件
 */
void MouseDoubleClick();

class MouseSimulator
{
public:
    MouseSimulator();
    void click();
    void doubleClick();
    void click(QPoint t);
    void doubleClick(QPoint t);
    /**
     * @brief mouseEvent 将 QMouseEvent e 对应的鼠标事件模拟出来
     * @param e
     *  TODO : 这个函数还没实现。
     */
    void mouseEvent(QMouseEvent e);
};


/*

#endif // MOUSESIMULATOR_H
